<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .countdown {
        width: 240px;
        height: 305px;
        text-align: center;
        line-height: 1;
        color: #fff;
        background-color: brown;
        /* background-size: 240px; */
        /* float: left; */
        overflow: hidden;
      }

      .countdown .next {
        font-size: 16px;
        margin: 25px 0 14px;
      }

      .countdown .title {
        font-size: 33px;
      }

      .countdown .tips {
        margin-top: 80px;
        font-size: 23px;
      }

      .countdown small {
        font-size: 17px;
      }

      .countdown .clock {
        width: 142px;
        margin: 18px auto 0;
        overflow: hidden;
      }

      .countdown .clock span,
      .countdown .clock i {
        display: block;
        text-align: center;
        line-height: 34px;
        font-size: 23px;
        float: left;
      }

      .countdown .clock span {
        width: 34px;
        height: 34px;
        border-radius: 2px;
        background-color: #303430;
      }

      .countdown .clock i {
        width: 20px;
        font-style: normal;
      }
    </style>
  </head>

  <body>
    <div class="countdown">
      <p class="next">今天是2023年4月8日</p>
      <p class="title">下课倒计时</p>
      <p class="clock">
        <span id="hour">00</span>
        <i>:</i>
        <span id="minutes">25</span>
        <i>:</i>
        <span id="second">20</span>
      </p>
      <p class="tips">18:30:00下课</p>
    </div>
    <script>
      //获取元素
      const hour = document.querySelector('#hour')
      const minutes = document.querySelector('#minutes')
      const second = document.querySelector('#second')

      //声明一个倒计时函数
      function clock() {
        //1.获取当前的时间戳
        const timeNow = +new Date()
        //2.获取下课的时间戳
        const timeFuture = +new Date('2023-4-8 18:30:00')

        //3.获取时间差 (秒)
        let time = (timeFuture - timeNow) / 1000

        //4.套用公式
        let h = parseInt((time / 60 / 60) % 24) //  计算小时

        let m = parseInt((time / 60) % 60) //  计算分钟

        let s = parseInt(time % 60) //  计算当前秒数

        //5.补零
        h = h < 10 ? '0' + h : h
        m = m < 10 ? '0' + m : m
        s = s < 10 ? '0' + s : s

        // console.log(h, m, s)

        //6.替换dom元素的内容
        hour.innerHTML = h
        minutes.innerHTML = m
        second.innerHTML = s
      }

      clock()

      //设置定时器函数
      setInterval(clock, 1000)
    </script>
  </body>
</html>
